home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 1997 #3 / Amiga Plus CD - 1997 - No. 03.iso / pd / programmierung / alienbreed3d2_src / cheesesauce / abreed3.lha / pauseopts < prev    next >
Text File  |  1995-09-04  |  5KB  |  327 lines

  1.  
  2. ; Options:
  3. ; FAST buffer on/off
  4. ; Floors Gouraud/Textured/Plain
  5. ;
  6. ; FIRST HALVE SCREEN BRIGHTNESS
  7.  
  8.  move.l frompt,pausept
  9.  move.l olddrawpt,d3
  10.  add.l #10,d3
  11.  move.l d3,pbuffpt
  12.  
  13.  bsr DRAWPAUSESCRN
  14.  
  15.  move.l drawpt,d0
  16.  move.l olddrawpt,drawpt
  17.  move.l d0,olddrawpt
  18.  move.l d0,$dff084    
  19.  move.l drawpt,a3
  20. ; move.l COPSCRNBUFF,a3
  21.  adda.w #10,a3
  22.  move.l a3,frompt
  23.  add.l #104*4*40,a3
  24.  move.l a3,midpt
  25.  
  26. ;waitfortop:
  27. ; btst.b #0,intreqrl(a6)
  28. ; beq waitfortop
  29. ; move.w #$1,intreq(a6)
  30.  
  31. .waitpress
  32.  
  33.  bsr CHANGEPOPTS
  34.  
  35.  tst.b $19(a5)
  36.  bne.s .unp
  37.  btst #7,$bfe001
  38.  bne.s .waitpress
  39. .unp:
  40.  
  41. .wr2:
  42.  tst.b $19(a5)
  43.  bne.s .wr2
  44.  btst #7,$bfe001
  45.  beq.s .wr2
  46.  
  47.  
  48.  rts
  49.  
  50. CHECKUPDOWN
  51.   btst #1,$dff00c
  52.  sne d0
  53.  btst #1,$dff00d
  54.  sne d1
  55.  btst #0,$dff00c
  56.  sne d2
  57.  btst #0,$dff00d
  58.  sne d3
  59.  eor.b d0,d2
  60.  eor.b d1,d3
  61.  
  62.  moveq #0,d6
  63.  move.l #KeyMap,a5
  64.  move.b forward_key,d6
  65.  tst.b (a5,d6.w)
  66.  sne d0
  67.  or.b d0,d2
  68.  move.b backward_key,d6
  69.  tst.b (a5,d6.w)
  70.  sne d1
  71.  or.b d1,d3
  72.  rts
  73.  
  74. CHANGEPOPTS:
  75.  
  76.  bsr CHECKUPDOWN
  77.  
  78.  tst.b d2
  79.  beq.s notopchange
  80.  
  81.  move.w #1,d0
  82.  sub.w TOPPOPT,d0
  83.  tst.l COPSCRNBUFF
  84.  bne.s OKFORFASTBUFFER
  85.  clr.w d0
  86. OKFORFASTBUFFER
  87.  move.w d0,TOPPOPT
  88.  tst.w d0
  89.  sne USECOPBUFFER
  90.  muls #12,d0
  91.  add.l #FBUFFOPTS,d0
  92.  move.l d0,a0
  93.  move.l #FBUFFOPTLINE,a1
  94.  bsr PUTINPLINE
  95.  
  96.  bsr DRAWPAUSESCRN
  97.  
  98. .WWWWWWWW
  99.  bsr CHECKUPDOWN
  100.  tst.b d2
  101.  bne.s .WWWWWWWW
  102.  
  103. notopchange:
  104.  
  105.  tst.b d3
  106.  beq.s nobotchange
  107.  
  108.  move.w BOTPOPT,d0
  109.  addq #1,d0
  110.  and.w #3,d0
  111.  move.w d0,BOTPOPT
  112.  clr.b ANYFLOOR
  113.  clr.b GOURSEL
  114.  st CLRNOFLOOR
  115.  move.l #SimpleFloorLine,THEFLOORLINE
  116.  cmp.w #2,d0
  117.  bgt.s .nofloor
  118.  beq.s .plainfloor
  119.  tst.w d0
  120.  bgt.s .textureonly
  121.  st GOURSEL
  122. .textureonly
  123.  move.l #FloorLine,THEFLOORLINE
  124. .plainfloor
  125.  st ANYFLOOR
  126.  clr.b CLRNOFLOOR
  127. .nofloor:
  128.  
  129.  muls #12,d0
  130.  add.l #FLOOROPTS,d0
  131.  move.l d0,a0
  132.  move.l #FLOOROPTLINE,a1
  133.  bsr PUTINPLINE
  134.  
  135.  bsr DRAWPAUSESCRN
  136.  
  137. billythe
  138.  bsr CHECKUPDOWN
  139.  tst.b d3
  140.  bne.s billythe
  141.  
  142. nobotchange:
  143.  
  144.  rts
  145.  
  146. THEFLOORLINE: dc.l FloorLine
  147. USECOPBUFFER: dc.w 0
  148. TOPPOPT: dc.w 0
  149. BOTPOPT: dc.w 0
  150. ANYFLOOR: dc.w 0
  151.  
  152. PUTINPLINE:
  153.  moveq #11,d7
  154. .pppp
  155.  move.b (a0)+,(a1)+
  156.  dbra d7,.pppp
  157.  rts
  158.  
  159. pbuffpt: dc.l 0
  160. pausept: dc.l 0
  161.  
  162. DRAWPAUSESCRN:
  163.  move.l #PAUSEFONT,a0
  164.  move.l #PAUSETXT,a1
  165.  move.l pausept,a2
  166.  move.l pbuffpt,a3
  167.  bsr DRAWPAUSEBLOCK
  168.  add.w #4,a2
  169.  add.w #4,a3
  170.  bsr DRAWPAUSEBLOCK
  171.  add.w #4,a2
  172.  add.w #4,a3
  173.  bsr DRAWPAUSEBLOCK
  174.  rts
  175.  
  176. DRAWPAUSEBLOCK:
  177.  move.w #3,d0
  178. .across:
  179.  moveq #0,d1
  180.  moveq #0,d2
  181.  moveq #9,d3
  182.  moveq #0,d5
  183. .down:
  184.  moveq #0,d4
  185.  move.b (a1,d2.w),d4
  186.  add.w #12,d2
  187.  sub.b #'A',d4
  188.  bge .itsalet
  189.  
  190.  moveq #7,d6
  191. .dospc:
  192.  move.w (a3,d5.l),d1
  193.  and.w #$eee,d1
  194.  lsr.w #1,d1
  195.  move.w d1,(a2,d5.l)
  196.  move.w 4(a3,d5.l),d1
  197.  and.w #$eee,d1
  198.  lsr.w #1,d1
  199.  move.w d1,4(a2,d5.l)
  200.  move.w 8(a3,d5.l),d1
  201.  and.w #$eee,d1
  202.  lsr.w #1,d1
  203.  move.w d1,8(a2,d5.l)
  204.  move.w 12(a3,d5.l),d1
  205.  and.w #$eee,d1
  206.  lsr.w #1,d1
  207.  move.w d1,12(a2,d5.l)
  208.  move.w 16(a3,d5.l),d1
  209.  and.w #$eee,d1
  210.  lsr.w #1,d1
  211.  move.w d1,16(a2,d5.l)
  212.  move.w 20(a3,d5.l),d1
  213.  and.w #$eee,d1
  214.  lsr.w #1,d1
  215.  move.w d1,20(a2,d5.l)
  216.  move.w 24(a3,d5.l),d1
  217.  and.w #$eee,d1
  218.  lsr.w #1,d1
  219.  move.w d1,24(a2,d5.l)
  220.  move.w 28(a3,d5.l),d1
  221.  and.w #$eee,d1
  222.  lsr.w #1,d1
  223.  move.w d1,28(a2,d5.l)
  224.  add.l #104*4,d5
  225.  dbra d6,.dospc
  226.  bra .nolet
  227.  
  228. .itsalet:
  229.  asl.w #7,d4
  230.  lea (a0,d4.w),a5
  231.  moveq #7,d6
  232. .dolet: 
  233.  move.w (a5)+,d1
  234.  bne.s .okpix1
  235.  move.w (a3,d5.l),d1
  236.  and.w #$eee,d1
  237.  lsr.w #1,d1
  238. .okpix1:
  239.  move.w d1,(a2,d5.l)
  240.  move.w (a5)+,d1
  241.  bne.s .okpix2
  242.  move.w 4(a3,d5.l),d1
  243.  and.w #$eee,d1
  244.  lsr.w #1,d1
  245. .okpix2:
  246.  move.w d1,4(a2,d5.l)
  247.  move.w (a5)+,d1
  248.  bne.s .okpix3
  249.  move.w 8(a3,d5.l),d1
  250.  and.w #$eee,d1
  251.  lsr.w #1,d1
  252. .okpix3:
  253.  move.w d1,8(a2,d5.l)
  254.  move.w (a5)+,d1
  255.  bne.s .okpix4
  256.  move.w 12(a3,d5.l),d1
  257.  and.w #$eee,d1
  258.  lsr.w #1,d1
  259. .okpix4:
  260.  move.w d1,12(a2,d5.l)
  261.  move.w (a5)+,d1
  262.  bne.s .okpix5
  263.  move.w 16(a3,d5.l),d1
  264.  and.w #$eee,d1
  265.  lsr.w #1,d1
  266. .okpix5:
  267.  move.w d1,16(a2,d5.l)
  268.  move.w (a5)+,d1
  269.  bne.s .okpix6
  270.  move.w 20(a3,d5.l),d1
  271.  and.w #$eee,d1
  272.  lsr.w #1,d1
  273. .okpix6:
  274.  move.w d1,20(a2,d5.l)
  275.  move.w (a5)+,d1
  276.  bne.s .okpix7
  277.  move.w 24(a3,d5.l),d1
  278.  and.w #$eee,d1
  279.  lsr.w #1,d1
  280. .okpix7:
  281.  move.w d1,24(a2,d5.l)
  282.  move.w (a5)+,d1
  283.  bne.s .okpix8
  284.  move.w 28(a3,d5.l),d1
  285.  and.w #$eee,d1
  286.  lsr.w #1,d1
  287. .okpix8:
  288.  move.w d1,28(a2,d5.l)
  289.  add.l #104*4,d5
  290.  dbra d6,.dolet
  291.  
  292. .nolet:
  293.  dbra d3,.down
  294.  add.w #4*8,a3
  295.  add.w #4*8,a2
  296.  addq #1,a1
  297.  dbra d0,.across 
  298.  
  299.  rts
  300.  
  301. PAUSETXT:
  302. ;      012345678901
  303.  dc.b '            '    0
  304.  dc.b '            '    1
  305.  dc.b 'FAST  BUFFER'    2
  306. FBUFFOPTLINE:
  307.  dc.b '    OFF     '    3
  308.  dc.b '            '    4
  309.  dc.b 'FLOOR DETAIL'    5
  310. FLOOROPTLINE:
  311.  dc.b '  GOURAUD   '    6
  312.  dc.b '            '    7
  313.  dc.b '            '    8
  314.  dc.b '            '    9
  315.  
  316. FBUFFOPTS:
  317.  dc.b '    OFF     '
  318.  dc.b '    ON      '
  319.  
  320. FLOOROPTS:
  321.  dc.b '  GOURAUD   '
  322.  dc.b '  TEXTURED  '
  323.  dc.b 'PLAIN SHADED'
  324.  dc.b '    NONE    '
  325.  
  326. PAUSEFONT:
  327.  incbin "PAUSEFONT"